package com.yanqu.road.entity.activity.commonwish;

import com.yanqu.road.entity.DataObject;
import com.yanqu.road.entity.FieldTypeAnnotation;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@FieldTypeAnnotation(tableName = "t_u_common_wish_data")
public class CommonWishUserData extends DataObject {

    @FieldTypeAnnotation(select = true, update = true, desc = "活动ID")
    private int activityId;

    @FieldTypeAnnotation(select = true, update = true, desc = "玩家ID")
    private long userId;

    @FieldTypeAnnotation(desc = "已点亮位置")
    private List<Integer> positionList = new ArrayList<>();

    @FieldTypeAnnotation(desc = "历史抽奖的机缘值")
    private int allDrawOpp;

    @FieldTypeAnnotation(desc = "当前抽奖的机缘值")
    private int drawOpp;

    @FieldTypeAnnotation(desc = "大奖已选过")
    private Map<Integer, Integer> bigSelectMap = new HashMap<>();

    @FieldTypeAnnotation(desc = "积分")
    private int score;

    @FieldTypeAnnotation(desc = "当前大奖")
    private String bigReward = "";

    @FieldTypeAnnotation(desc = "重置时间")
    private int resetTime;

    @FieldTypeAnnotation(desc = "抽奖轮次")
    private int drawRound;

    @FieldTypeAnnotation(desc = "当前轮次， 抽奖次数")
    private int drawTimes;

    @FieldTypeAnnotation(desc = "总抽奖次数")
    private int totalDrawTimes;

    public int getActivityId() {
        return activityId;
    }

    public void setActivityId(int activityId) {
        if(this.activityId != activityId) {
            this.activityId = activityId;
            setUpdateOption();
        }
    }

    public long getUserId() {
        return userId;
    }

    public void setUserId(long userId) {
        if(this.userId != userId) {
            this.userId = userId;
            setUpdateOption();
        }
    }

    public List<Integer> getPositionList() {
        return positionList;
    }

    public void setPositionList(List<Integer> positionList) {
        this.positionList = positionList;
        setUpdateOption();
    }

    public int getAllDrawOpp() {
        return allDrawOpp;
    }

    public void setAllDrawOpp(int allDrawOpp) {
        if(this.allDrawOpp != allDrawOpp) {
            this.allDrawOpp = allDrawOpp;
            setUpdateOption();
        }
    }

    public int getDrawOpp() {
        return drawOpp;
    }

    public void setDrawOpp(int drawOpp) {
        if(this.drawOpp != drawOpp) {
            this.drawOpp = drawOpp;
            setUpdateOption();
        }
    }

    public Map<Integer, Integer> getBigSelectMap() {
        return bigSelectMap;
    }

    public void setBigSelectMap(Map<Integer, Integer> bigSelectMap) {
        this.bigSelectMap = bigSelectMap;
        setUpdateOption();
    }

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        if(this.score != score) {
            this.score = score;
            setUpdateOption();
        }
    }

    public String getBigReward() {
        return bigReward;
    }

    public void setBigReward(String bigReward) {
        if(this.bigReward != bigReward) {
            this.bigReward = bigReward;
            setUpdateOption();
        }
    }

    public int getResetTime() {
        return resetTime;
    }

    public void setResetTime(int resetTime) {
        if(this.resetTime != resetTime) {
            this.resetTime = resetTime;
            setUpdateOption();
        }
    }

    public int getDrawRound() {
        return drawRound;
    }

    public void setDrawRound(int drawRound) {
        if(this.drawRound != drawRound) {
            this.drawRound = drawRound;
            setUpdateOption();
        }
    }

    public int getDrawTimes() {
        return drawTimes;
    }

    public void setDrawTimes(int drawTimes) {
        if(this.drawTimes != drawTimes) {
            this.drawTimes = drawTimes;
            setUpdateOption();
        }
    }

    public int getTotalDrawTimes() {
        return totalDrawTimes;
    }

    public void setTotalDrawTimes(int totalDrawTimes) {
        if(this.totalDrawTimes != totalDrawTimes) {
            this.totalDrawTimes = totalDrawTimes;
            setUpdateOption();
        }
    }
}
